package com.tosit.bmx.mapper;

import com.tosit.bmx.domian.*;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

@Repository
public interface SecondSubMapper {
    long countByExample(SecondSubExample example);

    int deleteByExample(SecondSubExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(SecondSub record);

    int insertSelective(SecondSub record);

    List<SecondSub> selectByExample(SecondSubExample example);

    SecondSub selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") SecondSub record, @Param("example") SecondSubExample example);

    int updateByExample(@Param("record") SecondSub record, @Param("example") SecondSubExample example);

    int updateByPrimaryKeySelective(SecondSub record);

    int updateByPrimaryKey(SecondSub record);

//    /**
//     * 通过套题id获取此套题所关联的所有题目的关联对象
//     * @author tsl
//     * @date 2018/4/25 14:39
//     * @param
//     * @return
//     */
//    List<SecondSub> selectSubIdBySecondTypeId(@Param("id") Integer id);

    /**
     * 删除一个或多个套题和题的关联
     *
     * @param ids 删除关联对象id
     * @return
     * @author tsl
     * @date 2018/4/25 14:56
     */
    Integer deleteRelate(@Param("ids") List<Integer> ids);

    /**
     * 添加一个或多个套题和题的关联
     *
     * @param secondSubs 添加关联对象（seid，sid，sorder）集合
     * @return
     * @author tsl
     * @date 2018/4/25 14:56
     */
    Integer insertSelectives(@Param("secondSubs") List<SecondSub> secondSubs);

    /**
     * 通过套题id获取此套题所关联的所有题目的关联对象
     *
     * @param
     * @param coypId
     * @return
     * @author tsl
     * @date 2018/4/25 14:39
     */
    Integer copySubIdBySecondTypeId(@Param("insertid") Integer insertid, @Param("coypId") Integer coypId);

    /**
     * 修改一个或多个套题和题的关联的排序
     *
     * @param secondSubs （id，sorder）
     * @return
     * @author tsl
     * @date 2018/4/25 14:56
     */
    Integer updatesSort(@Param("secondSubs") List<SecondSub> secondSubs);



    /**
     * 通过套题id获取所有套题和题的关联类
     *
     * @param
     * @return
     * @author tsl
     * @date 2018/4/26 11:36
     */
    List<SecondSub> selectBySeid(@Param("seId") Integer seId);
    /**
     * 通过套题多个id获取所有套题和题的关联类(题目sid不重复)
     *
     * @param
     * @return
     * @author tsl
     * @date 2018/4/26 11:36
     */
    List<SecondSub> selectBySeids(@Param("seIds") List<Integer> seIds);

    void deleteBySecondType(@Param("id") Integer id);

    void deleteBySecondTypes(@Param("ids") List<Integer> ids);

    void deleteBySubjectId(@Param("ids") List<Integer> ids);
}